package com.sprouting.ops.model;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sprouting.ops.annotations.invoke.CheckNotNull;
import lombok.Data;

import javax.validation.constraints.NotNull;

/**
 * 产品依赖表
 *
 * @author ：LX（长沙麓谷）
 * @date 创建时间： 2025/6/1 15:27
 */
@TableName("ops_product_depend")
@Data
public class OpsProductDepend extends BaseModel {

    /**
     * 主键
     */
    @TableId
    private String id;
    /**
     * 所属产品
     * @see OpsProduct#getId()
     */
    private String productId;
    /**
     * 是否必须-核心应用
     * @see com.sprouting.ops.interfaces.ConstantBase.YesOrNo#YES 核心项目
     * @see com.sprouting.ops.interfaces.ConstantBase.YesOrNo#NO 非核心项目
     */
    private Integer necessary;
    /**
     * 依赖的类型，组件，应用
     * @see com.sprouting.ops.interfaces.ConstantBase.ProductDependType
     */
    @NotNull(message = "依赖类型不能为空")
    private Integer type;
    /**
     * 绑定id，组件id或应用id
     * @see OpsProduct#getId()
     * @see OpsComponent#getId()
     * @see OpsApp#getId()
     */
    @CheckNotNull(message = "依赖信息不能为空")
    private String bindId;
}
